1. Field of the Invention
This invention is related to video processing for multimedia computer applications. More specifically, this invention is related to the management of updates to shift registers in register-based, integrated circuit video processors of the type used in multimedia workstations.
2. Definition of the Problem
The proliferation of microprocessor-based, multimedia computer systems and multimedia applications has created the need for improved integrated circuits for processing video. These integrated circuits must be capable of managing video data in real time. Many of the challenges related to managing video in real time are related to handling multiple, changing video images without producing visual artifacts or abrupt changes in the images as displayed. Such visual effects would be displeasing to users and thus undesirable.
There are numerous manufacturers of video processors for use in multimedia systems. Many aspects of the video processors sold by the assignee of the present invention are described in U.S. patent application Ser. No. 153,004, filed Nov. 12, 1993, assigned to the assignee of the present application, which is incorporated herein by reference.
One of the problems encountered in video processor design has to do with the management of registers. Data representing the manner in which images to be displayed (control data) is stored in a set of registers. Data representing the images themselves (image data) is stored in a video memory. The control data is derived from user input (for example, a user specifying the size and location of the video window with a mouse), or from input provided by a workstation program (for example, the resolution of the workstation monitor). Since computer displays display video as a series of still frames or images, each one scanned onto the display screen a line at a time, the image data in the video memory must be constantly updated, once for each frame. Similarly, the control data needs to be updated once per frame at a maximum, and should always be updated at a time when the workstation display is between images.
Modern video processors can display multiple video windows on a computer display simultaneously, by alternating the still frames displayed between video presentations. In most cases, a maximum of two video windows are supported. Each window is updated at half the rate that the overall display is updated, which is still fast enough that a user perceives the video in each window as full-motion. If the display is capable of updating itself fast enough; however, more video windows can be displayed simultaneously.
In the case where two video windows are displayed, the control data for each is stored in a register. One window's control data is said to be associated with the "odd" field image and is said to be stored in the "odd" register, and the other window's control data is said to be associated with the "even" field image and is said to be stored in the "even" register. In the current art, a register set consists of a single set of memory elements for storing control data associated with a single video image. If a register is updated while the video image is being scanned onto the display screen, the image viewed in the window associated with that register may be distorted or perturbed in such a way as to be displeasing to the user. Therefore, the timing of the updating of the registers must be carefully controlled so that one register is updated while a frame associated with the other register is being displayed. The timing of these register updates can not reasonably be accomplished by the microprocessor in the workstation because the microprocessor does not keep track of the presentation of images on the display. What is needed is a hardware-based frame register switching method that completely prevents the contents of a register from being updated while its associated image is being displayed, regardless of the time at which the contents of the register are written or read by the microprocessor.